enum Flavor {
  dev,
  staging,
  prod,
}

class AppConfig {
  static Flavor? appFlavor;

  static String get appName {
    switch (appFlavor) {
      case Flavor.dev:
        return 'FlutterDome Dev';
      case Flavor.staging:
        return 'FlutterDome Staging';
      case Flavor.prod:
        return 'FlutterDome';
      default:
        return 'FlutterDome';
    }
  }

  static String get baseUrl {
    switch (appFlavor) {
      case Flavor.dev:
        return 'https://api-dev.example.com';
      case Flavor.staging:
        return 'https://api-staging.example.com';
      case Flavor.prod:
        return 'https://api.example.com';
      default:
        return 'https://api.example.com';
    }
  }

  static bool get isDebugMode {
    switch (appFlavor) {
      case Flavor.dev:
        return true;
      case Flavor.staging:
        return true;
      case Flavor.prod:
        return false;
      default:
        return false;
    }
  }

  static String get environment {
    switch (appFlavor) {
      case Flavor.dev:
        return 'Development';
      case Flavor.staging:
        return 'Staging';
      case Flavor.prod:
        return 'Production';
      default:
        return 'Unknown';
    }
  }

  static String get packageName {
    switch (appFlavor) {
      case Flavor.dev:
        return 'com.example.flutterdome.dev';
      case Flavor.staging:
        return 'com.example.flutterdome.staging';
      case Flavor.prod:
        return 'com.example.flutterdome.prod';
      default:
        return 'com.example.flutterdome';
    }
  }

  static String get appVersion {
    return '1.0.0';
  }
}
